.\"   $Id: ablToBddCct.3,v 1.1 2002/04/03 13:13:25 ludo Exp $
.\" @(#)ablToBddCct.2 7.01 92/08/22 ; Labo masi cao-vlsi; Author : Luc Burgun
.TH ABLTOBDDCCT 3 "October 1, 1997" "ASIM/LIP6" "BDD functions"
.so man1/alc_origin.1
.SH NAME
\fBablToBddCct\fP \- converts an ABL into a BDD within a circuit 
.SH SYNOPSIS
.nf
#include "logmmm.h"
pNode ablToBddCct(pC,expr)
pCircuit pC;
chain_list *expr;
.fi
.SH PARAMETERS
.TP 20
\fIpC\fP
Circuit in which is made the conversion
.TP 20
\fIexpr\fP
expression to convert
.SH DESCRIPTION
\fBablToBddCct()\fP constructs the graph that is computed from \fIexpr\fP. This function provides the basic method for constructing easily the BDDs. The \fBapplyBdd()\fP function is called recursively by going through the ABL.
.SH EXAMPLE
.nf
#include "mutnnn.h"		/* mbk utilities */
#include "logmmm.h"
chain_list *expr;
pNode res;
pCircuit pC;

initializeBdd(SMALL_BDD);
pC = initializeCct("circuit 1",10,10);

addInputCct(pC,"a");
addInputCct(pC,"b");

	/* let's suppose that expr = (OR (AND (NOT a) b) a) */

res = ablToBddCct(pC,expr);
displayBdd(res,1);

/* it will display 
@res      INDEX = 3   LOW = @nodeA   HIGH = ONE 
@nodeA    INDEX = 2   LOW = ZERO     HIGH = ONE
*/

destroyCct(pC);
destroyBdd(1);
.fi
.SH SEE ALSO
.BR log (1),
.BR bdd (1),
.BR abl (1),
.BR bddToAblCct (3).

.so man1/alc_bug_report.1

